package cn.ldf.keepaccounts.service;

import cn.ldf.keepaccounts.entity.dto.RoomsDTO;
import cn.ldf.keepaccounts.entity.dto.RoomsHistoryDTO;
import cn.ldf.keepaccounts.entity.vo.DissolutionMemberOneVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import cn.ldf.keepaccounts.entity.pojo.Rooms;

/**
 * 房间表(Rooms)表服务接口
 *
 * @author 清峰
 * @since 2025-02-17 10:15:14
 */
public interface RoomsService extends IService<Rooms> {
    /**
     * 创建房间
     * @param roomsDTO 实体对象
     * @return 结果集
     */
    RoomsDTO createRooms(RoomsDTO roomsDTO);
    /**
     * 根据房间id查询房间
     * @param roomId 房间id
     * @return 结果集
     */
    Rooms getByRoomId(String roomId);
    /**
     * 根据房间id查询是否解散
     * @param roomId 房间id
     * @return 结果集
     */
    Boolean isDissolutionRooms(String roomId);
    /**
     * 解散房间
     * @param roomId 房间id
     * @return 结果集
     */
    Boolean dissolutionRooms(String roomId);
    /**
     * 解散房间
     * @param roomId 房间id
     * @param openId 用户id
     * @return 结果集
     */
    DissolutionMemberOneVO dissolutionRoomsToMember(String roomId, String openId);
    /**
     * 根据房间id查询房间是否存在
     * @param roomId 房间id
     * @return 结果集
     */
    Boolean isExistByRoomId(String roomId);
    /**
     * 生成房间二维码
     * @param roomId 房间id
     * @param pagePath 页面路径
     */
    void generateQrCode(String roomId, String pagePath);
    /**
     * 分页查询房间解散历史
     * @param page 分页对象
     * @param rooms 房间对象
     * @return 结果集
     */
    Page<RoomsHistoryDTO> dissolutionHistory(Page<Rooms> page, Rooms rooms);
    /**
     * 获取正在进行中的房间
     * @param openId 用户id
     * @return 结果集
     */
    Rooms getDoingRoomByOpenId(String openId);

}

